home *** CD-ROM | disk | FTP | other *** search
- #ifndef BUILTINS_H
- #define BUILTINS_H
-
- #include <types.h>
- #include <stdio.h>
- #include <string.h> /* for memcpy, memset */
-
- typedef void *Pointer;
- typedef FILE *FILEPtr;
-
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
-
- extern int ArgC;
- extern char **ArgV;
- extern char **Env;
- extern void InitArgCArgV(int theArgC, char **theArgV, char **theEnv, Boolean cvtToPString);
- extern int PB_Power(int base, int n);
-
-
- #define MoveLeft(s, d, l) memcpy(d, s, l)
- #define MoveRight(s, d, l) memmove(d, s, l)
- #define FillChar(s, n, c) memset(s, c, n)
- #define Odd(n) ((n % 2) == 1)
-
- #define BAnd(a, b) ((unsigned long)(a) & (unsigned long)(b))
- #define BOr(a, b) ((unsigned long)(a) | (unsigned long)(b))
- #define BXOr(a, b) ((unsigned long)(a) ^ (unsigned long)(b))
- #define BNot(a) (~(unsigned long)(a))
- #define BSL(a, b) ((unsigned long)(a) << ((b) & 0x3FUL))
- #define BSR(a, b) ((unsigned long)(a) >> ((b) & 0x3FUL))
- #define BRotL(a, b) ((unsigned long)(a) << ((b) & 0x3FUL)) | ((unsigned long)(a) >> (32UL - ((b) & 0x3FUL)))
- #define BRotR(a, b) ((unsigned long)(a) >> ((b) & 0x3FUL)) | ((unsigned long)(a) << (32UL - ((b) & 0x3FUL)))
- #define BTst(a, b) (((unsigned long)(a) & (1UL << (b))) != 0)
- #define HiWrd(a) ((unsigned short)((unsigned long)(a) >> 16UL))
- #define LoWrd(a) ((unsigned short)((unsigned long)(a) & 0xFFFFUL))
- #define BClr(a, b) (a = ((unsigned long)(a) & (~(1UL << (b)))))
- #define BSet(a, b) (a = ((unsigned long)(a) | (1UL << (b))))
-
- #ifdef __cplusplus
- }
- #endif
-
-
- #endif